#ifndef WEATHERTOOL_H
#define WEATHERTOOL_H
#include<QMap>
#include<QFile>
#include<QJsonArray>
#include<QJsonDocument>
#include <QJsonObject>
#include <QJsonValue>
#include<QJsonParseError>
class WeatherTool{
private:
    static QMap<QString,QString> mCityMap;
    static void initCityMap(){
        //读取文件
        QString filePath = ":/img/res/citycode.json";
        QFile file(filePath);
        file.open(QIODevice::ReadOnly|QIODevice::Text);
        QByteArray json = file.readAll();
        file.close();
        //解析并写入map
        QJsonParseError err;
        QJsonDocument doc = QJsonDocument::fromJson(json,&err);
        if(err.error!=QJsonParseError::NoError){
            return;
        }
        if(!doc.isArray()){
            return;
        }
        QJsonArray citys = doc.array();
        for(int i =0;i<citys.size();i++){
            QJsonObject obj = citys[i].toObject();
            QString city = obj.value("city_name").toString();
            QString code = obj.value("city_code").toString();
            if(code.size()>0){
                mCityMap.insert(city,code);
            }
        }
    }
public:
    static QString getCityCode(QString cityName){
        if(mCityMap.isEmpty()){
            initCityMap();
        }
        QMap<QString,QString>::iterator it = mCityMap.find(cityName);
        if(it==mCityMap.end()){
            mCityMap.find(cityName+"市");
        }
        if(it !=mCityMap.end()){
            return it.value();
        }
        return "";
    }
};
QMap<QString,QString> WeatherTool::mCityMap = {};
#endif // WEATHERTOOL_H
